package com.sugar.queryinfo.module.business.controller.admin.userbalancerecord.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 余额变动记录新增/修改 Request VO")
@Data
public class UserBalanceRecordSaveReqVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19227")
    private Long id;

    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28522")
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    @Schema(description = "部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "944")
    @NotNull(message = "部门ID不能为空")
    private Long deptId;

    @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "标题不能为空")
    private String title;

    @Schema(description = "类型（0支出 1收入）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "类型（0支出 1收入）不能为空")
    private Boolean type;

    @Schema(description = "记录时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "记录时间不能为空")
    private LocalDateTime recordTime;

    @Schema(description = "变动前余额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "变动前余额不能为空")
    private Long preBalance;

    @Schema(description = "变动金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "变动金额不能为空")
    private Long amount;

    @Schema(description = "变动后余额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "变动后余额不能为空")
    private Long postBalance;

    @Schema(description = "备注", example = "随便")
    private String remark;

}